Описание синтаксиса
DSL (Domain-Specific Language) — это специализированный язык запросов, разработанный для эффективной работы с событиями и логами в системах информационной безопасности. Язык был создан экспертами компании Solar в качестве middleware-решения для интеграции различных приложений ИБ с базой данных ClickHouse
Основное преимущество DSL — возможность описания логических выборок и трансформаций без необходимости составления полноценных SQL-запросов, за счёт более лаконичного и предметно-ориентированного синтаксиса
Регистрозависимость
Поиск значений выполняется с учётом регистра
Для некоторых полей регистр является строгим требованием (например, поле
actionтребует указания значений в верхнем регистре:ALLOW,BLOCK,DETECT)
Пример:
Поиск логина `login = "ivanov"` найдёт только записи, где значение точно соответствует `"ivanov"`
Записи `"Ivanov"`, `"IVANOV"` не будут найдены
Для операторов и ключевых фраз допустимы следующие варианты написания:
- В верхнем регистре:
IS NULL - В нижнем регистре:
is null - С заглавной буквы:
Is Null
Недопустимые варианты:
Is nUlliS NuLL
Поддерживаемые типы данных
| Тип данных | Описание | Пример |
|---|---|---|
string | Строковые значения | "ivanov" |
number | Числовые значения | 2 |
bool | Булевы значения | true, false |
number array | Массив чисел | [1, 2] |
string array | Массив строк | ["ivanov", "ivanov2"] |
bool array | Массив булевых значений | [true, false] |
Все перечисленные типы данных могут принимать значение NULL, что означает отсутствие данных